/**
*  
* @Function 消息DAO 
* @ProjectName credit-data-xypj 
* @PackageName com.py.credit.dao    
* @FileName SysMsgDao.java    
* @Date 2018年12月14日下午5:24:56
* @Author Min DongXv
* @Copyright (c) 2018, 金电联行 All Rights Reserved.   
*   
*/
package com.py.credit.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.credit.entity.MsgRecordEntity;
import com.py.credit.entity.SysMsgDetailEntity;
import com.py.credit.entity.SysMsgEntity;
import com.py.framework.core.common.Page;

/**
 * 
 * @Function 消息DAO
 * @ClassName SysMsgDao
 * @Date 2018年12月14日 下午5:24:56
 * @Author Min DongXv
 * 
 */
public interface SysMsgDao {

	/**
	 * 查询消息记录列表
	 * 
	 * @param msgId
	 *            消息Id
	 * @param userId
	 *            用户Id
	 * @param msgStatus
	 *            消息状态，1：未读，2：已读
	 * @return
	 */
	List<Map<String, Object>> queryMsgRecordByPage(@Param("msgId") Long msgId, @Param("userId") Long userId,
			@Param("msgStatus") Integer msgStatus, @Param(value = "page") Page page);

	/**
	 * 查询消息记录列表
	 * 
	 * @param userId
	 *            用户Id
	 * @return
	 */
	List<Map<String, Object>> queryMsgRecord(@Param("userId") long userId);

	/**
	 * 根据消息Id查询消息信息
	 * 
	 * @param id
	 *            消息Id
	 * @return
	 */
	SysMsgEntity findOneMsg(@Param("id") long id);

	/**
	 * 添加站内消息
	 * 
	 * @param entity
	 * @return
	 */
	int addMsgInfo(SysMsgEntity entity);

	/**
	 * 添加详情信息
	 * 
	 * @param entity
	 * @return
	 */
	int addMsgDetailInfo(SysMsgDetailEntity entity);

	/**
	 * 批量添加记录信息
	 * 
	 * @param datas
	 * @return
	 */
	int batchAddMsgRecordInfo(List<MsgRecordEntity> datas);

	/**
	 * 批量删除消息
	 * 
	 * @param params
	 * @return
	 */
	int batchDelMsg(Map<String, Object> params);

	/**
	 * 批量删除消息详情
	 * 
	 * @param params
	 * @return
	 */
	int batchDelMsgDetail(Map<String, Object> params);

	/**
	 * 批量删除消息记录
	 * 
	 * @param params
	 * @return
	 */
	int batchDelMsgRecord(Map<String, Object> params);

	void updateMsgStatus(@Param("msgStatus") Integer status, @Param("id") Long id);
}